// render 用于改写把整个应用 render 到 dom 树里的方法。
// 使用场景：
// 1、加载项目需要的初始运行参数
// 2、判断当前是否处于登录状态
export const render = (oldRender) => {
  /**
   * todo
   * 前面处理业务逻辑
   * oldRender
   * 之后必须调用oldRender
   */
  console.log('这里是做权限校验的地方');

  oldRender()
}

// 用于运行时修改路由 常用于服务器中请求路由
export const patchRoutes = ({ routes }) => {
  routes.unshift({
    exact: true,
    path: '/foo',
    title: 'foo',
    component: require('@/pages/foo').default,
  });
}

// 用于在初始加载和路由切换时做一些事情。
export const onRouteChange = ({ location, matchedRoutes, routes, action }) => {
  console.log(location, 'location');
  console.log(matchedRoutes, 'matchedRoutes');
  console.log(routes, 'routes');
  console.log(action, 'action');
}

// 修改传给路由组件的 props。
// export const modifyRouteProps = (props, { route }) => {
//   console.log(route), 555555555555;

//   return { ...props, foo: 'bar' }
// }

/**
 * 渲染后端返回的路由
 * 递归
 */
// import dynamic from 'dva/dynamic'
//
// const buildRoutes = (authRoutes) => {
//   return (authRoutes || []).map(item => {
//     if (item.children && item.children.length > 0) {
//       return {
//         path: item.path,
//         name: item.menuKey,
//         routes: buildRoutes(item.children)
//       }
//     }
//     return {
//       path: item.path,
//       name: item.menuKey,
//       component: dynamic({component: () => import(`@/pages${item.component || item.url}`)})
//     }
//   })
// }